// 引入获取图像识别token 和 图像识别函数
import {returnColorImgToken} from '../../request/request.js'
import {img_effect} from '../../request/request.js'

// pages/animal_discern/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    tips_list:[
      '1.为用户量身定制千人千面的二次元动漫形象',
      '2.可生成戴口罩的二次元动漫',
      '3.点击生成的动漫化可进行预览保存'
    ],
    img_file_path: '',
    // 处理结果是否戴口罩
    type: 'anime',
    src: ''
  },
  
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },
  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 获取图像识别token 置于缓存中
    const image_token = returnColorImgToken()
  },
  // 像素乘积不超过 1280*720
  // 子组件选择图片事件
  async handleImgChoice(e){
    // 新请求前重置结果集
    this.setData({src: ''})
    // 获取图片路径
    const {tempFilePaths} = e.detail
    this.setData({img_file_path: tempFilePaths})
    const color_image_token = wx.getStorageSync('colorImg_token').colorImg_token
    const req_url = 'https://aip.baidubce.com/rest/2.0/image-process/v1/selfie_anime?access_token=' + color_image_token
    const type = this.data.type
    const result_data = await img_effect(tempFilePaths, req_url, type)
    if(result_data.image){
      let code = result_data.image; // 后台返回的base64图片，没有带data:image/png;base64,的前缀。
      let src = `data:image/png;base64,${code}`;
      const fsm = wx.getFileSystemManager();  // 获取文件管理器
      code = code.replace(/\ +/g, ""); 
      code = code.replace(/[\r\n]/g, "");

      const buffer = wx.base64ToArrayBuffer(code );  //  将 base64 字符串转成 ArrayBuffer 对象
      const fileName = wx.env.USER_DATA_PATH + '/share_img.png';  // 文件系统中的用户目录路径 （本地路径）

      fsm.writeFileSync(fileName, buffer, 'binary');  // 写入文件， 同步方法  写入成功后就可以访问到该图片路径了
      this.setData({src: fileName})
    }else{
      wx.showToast({
        title: '重新选择图片',
        icon: 'none',
        mask: true
      })
    }
  },
  // 选择是否生成戴口罩头像回调函数
  // 请求存在bug，server端
  // handleCardSide(e){
  //  this.setData({type: e.detail.value})
  //   // 构造传入参数
  //   console.log(this.data.type);
  //   const data = {'detail': {'tempFilePaths': this.data.img_file_path}}
  //   console.log(data.detail);
  //   // 切换类型，发送一次请求 前提存在图片路径
  //   if(this.data.img_file_path){
  //     this.handleImgChoice(data)
  //   }
  // },
  // 结果图片点击放大预览回调函数
  previewImage(){
    wx.previewImage({
      urls: [this.data.src],
      showShareMenu: true
    })
  },
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    // 重新分享方法
    wx.showShareMenu({
      withShareTicket: true,
      menus: ['shareAppMessage', 'shareTimeline']
    })
    return {
      title: "图片动漫化",
      path: "/pages/imgcartong/index"
    }
  },
  /**
   * 用户点击分享朋友圈
   */
  onShareTimeline(){}

})
